Functional testing of software is typically accomplished through one of three test methods. The first is through the use of designed manual testing. In this method, a test author designs a test that can be performed manually to verify that the software functions as designed and that there are no bugs in the software. A designed manual test can be relatively expensive to create and may be limited by the expertise, creativity, and time budget of the test author. Functional areas not covered by the manual test can still contain errors and bugs.
A second method for functional testing of software is through the design of automated tests. Automated testing can overcome some of the limitations of manual tests by enabling tests to be run a number of times under varying conditions and with different data inputs. This can provide more thorough testing in the same amount of time as a manual test is run. However, automated tests can be even more expensive to author than manual tests, due to their increased complexity. Additionally, automated tests can be limited in much the same way as manual tests, by the expertise, creativity, and time budget of the test author.
A third method for functional testing of software is through exploratory testing. Exploratory testing does not rely on a predefined testing scenario. Rather, one or more software testers merely use the software in an effort to find errors or bugs. Exploratory testing is less expensive than designed testing (either manual or automated) since it does not require the creation of a testing script prior to testing. Exploratory testing can also be more complete than designed tests, especially if multiple different people perform the exploratory testing. The use of multiple testers enables different ideas and points of view to be tested, enabling a more thorough analysis of a new software program.
However, exploratory testing is typically not manageable since there is no advance scripting or review of an executed test case. In addition, there is a high chance of duplicated testing efforts when there is more than one tester, since exploratory testing is not ordered, or accomplished with predefined scenarios. The duplication of efforts can reduce the savings in time and money from creating scripted tests.
Reference will now be made to the exemplary embodiments illustrated, and specific language will be used herein to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended.